import request from "@/utils/request";

const Goods_BASE_URL = "/admin/goods/list";
const GoodsCate_BASE_URL = "/admin/goods/classify/list";
const GoodsCateTree_BASE_URL = "/admin/goods/classify/tree";
const GoodsCate_DEL_URL = "/admin/goods/classify/del";

const Goods_ADD_URL = "/admin/goods/add";
const Goods_INFO_URL = "/admin/goods/details";
const Goods_EDIT_URL = "/admin/goods/alter";
const Goods_STATUS_URL = "/admin/goods/set";
const GoodsCate_SAVE_URL = "/admin/goods/classify/add";
const Goods_del_URL = "/admin/goods/del";

const GoodsCateTree_SAVE_URL = "/admin/adManage/tree";

const GoodsAPI = {
  /**
   * 获取分类列表
   *
   * @returns 树形表格数据
   */
  getCateList() {
    return request<any, CateVO[]>({
      url: `${GoodsCate_BASE_URL}`,
      method: "get",
    });
  },

  /**
   * 新增分类
   *
   * @param data 表单数据
   * @returns 请求结果
   */
  createCate(data: CateForm) {
    return request({
      url: `${GoodsCate_SAVE_URL}`,
      method: "post",
      data,
    });
  },

  /**
   * 修改分类
   *
   * @param id ID
   * @param data 表单数据
   * @returns 请求结果
   */
  updateCate(data: CateForm) {
    return request({
      url: `${GoodsCate_SAVE_URL}`,
      method: "post",
      data,
    });
  },

  /**
   * 查看分类
   *
   * @param id ID
   * @returns 请求结果
   */
  deleteByIdsCate(data: any) {
    return request({
      url: `${GoodsCate_DEL_URL}`,
      method: "post",
      data,
    });
  },

  /**
   * 获取商品列表
   *
   * @returns 树形表格数据
   */
  getList(queryParams: any) {
    return request<any, any>({
      url: `${Goods_BASE_URL}?goodName=${queryParams.goodName}&goodsTarget=${queryParams.goodsTarget}&goodStatus=${queryParams.goodStatus}&classifyId=${queryParams.classifyId}&page=${queryParams.pageNum}&limit=${queryParams.pageSize}`,
      method: "get",
    });
  },

  /**
   * 新增商品
   *
   * @param formData 表单数据
   * @returns 请求结果
   */
  create(data: any) {
    return request({
      url: `${Goods_ADD_URL}`,
      method: "post",
      data,
    });
  },

  /**
   * 修改商品
   *
   * @param id ID
   * @param data 表单数据
   * @returns 请求结果
   */
  update(data: any) {
    return request({
      url: `${Goods_EDIT_URL}`,
      method: "post",
      data,
    });
  },

  /**
   * 查看商品
   *
   * @param id ID
   * @param data 表单数据
   * @returns 请求结果
   */
  info(data: any) {
    return request<any, any>({
      url: `${Goods_INFO_URL}`,
      method: "post",
      data,
    });
  },

  /**
   * 删除商品
   *
   * @param data 商品ID
   * @returns 请求结果
   */
  deleteByIds(data: any) {
    return request({
      url: `${Goods_del_URL}`,
      method: "post",
      data,
    });
  },

  /**
   * 获取商品分类树
   *
   * @returns 分类树数据
   */
  getCateTree() {
    return request<any, any[]>({
      url: `${GoodsCateTree_BASE_URL}`,
      method: "get",
    });
  },

  updateStatus(data: any) {
    return request({
      url: `${Goods_STATUS_URL}`,
      method: "post",
      data,
    });
  },

  /**
   * 获取广告管理树
   *
   * @returns 分类树数据
   */
  getGoodsCateTree() {
    return request<any, any[]>({
      url: `${GoodsCateTree_SAVE_URL}`,
      method: "get",
    });
  },
};

export default GoodsAPI;

/** 查询参数 */
export interface CateQuery {
  /** 搜索关键字 */
  keywords?: string;
}

export interface GoodsQuery {
  /** 搜索关键字 */
  goodName?: string;
  goodsTarget?: string;
  goodStatus?: string;
  classifyId?: string;
  page?: number;
  limit?: number;
}

/** 商品列表 */
export interface GoodsVO {
  /** 创建时间 */
  createTime?: string;
  /** ID */
  id?: string;
  /** 名称 */
  name?: string;
  /** logo */
  logo?: string;
  /** images */
  images?: Array<string>;
  /** 分类id */
  cate_id?: number;
  /** 分类名称 */
  cate_name?: string;
  /** 排序 */
  sort?: number;
  /** 价格 */
  price?: string;
  /** 成本价格 */
  cost_price?: string;
  /** 库存 */
  stock?: number;
  /** 销量 */
  sale?: number;
  /** 内容 */
  content?: string;
  /** 状态(1:启用；0：禁用) */
  status?: number;
  /** 规格 */
  specifications: any;
}

/** 商品表单类型 */
export interface GoodsForm {
  /** 名称 */
  name?: string;
  /** logo */
  logo?: string;
  /** images */
  images?: any;
  /** 分类id */
  cate_id?: number;
  /** 分类名称 */
  cate_name?: string;
  /** 排序 */
  sort?: number;
  /** 价格 */
  price?: string;
  /** 成本价格 */
  cost_price?: string;
  /** 库存 */
  stock?: number;
  /** 销量 */
  sale?: number;
  /** 内容 */
  content?: string;
  /** 状态(1:启用；0：禁用) */
  status?: number;
  /** 是否是福利商品 */
  isBenefit: number;
  /** 是否是会员商品 */
  isMember: number;
  /** ID(新增不填) */
  id?: string;
  /** 是否包邮 */
  isDelivery?: number;
  /** 虚拟销量 */
  virtualSales?: number;
  /** 福利商品限购数量 */
  quotaNum?: number;
  /** 视频ID */
  videoId?: number;
  /** 规格 */
  specifications: any;
  /** 规格内容 */
  guige?: any;

  hasMultipleSpecs: boolean;
}

/** 分类类型 */
export interface CateVO {
  /** 创建时间 */
  createTime?: string;
  /** ID */
  id?: string;
  /** 名称 */
  name?: string;
  /** 排序 */
  sort?: number;
  /** 状态(1:启用；0：禁用) */
  status?: number;
  /** 图标 */
  logo?: string;
}

/** 分类表单类型 */
export interface CateForm {
  /** ID(新增不填) */
  classifyId?: string;
  /** 名称 */
  classifyName?: string;
  /** 排序 */
  sort?: number;
  /** 状态(1:启用；0：禁用) */
  status?: number;
  /** 图标 */
  classifyImage?: string;
  /** 分类ID */
  managerId?: number;
}
